Multi-Currency Portfolio Tracker
When considering a holistic view of finances, it can be useful to track a portfolio of securities with consideration for and consolidation of multiple account types. Moreover, as a currency is simply a unit of measure, the program is specifically designed to be compatible with a range of reference currencies (which are easily extendible), use any of these currencies when providing inputs for cash and investments, and provide aggregated results in any of these currencies. The project initially began as a spreadsheet, but shifted into an object-oriented program for more complex operations. The next steps include adding forecasting capabilities for planning and then safe withdrawal rate simulations for retirement. The primary packages used in the project include Python with Numpy, Pandas, Plotly, ... , and Pickle. It should be noted that all of the data presented is artificial for a demonstration of the functionality.
Cash Balances
After ...adding... the amounts, the cash balances include a summary of the total cash balance for each month (in USD, GBP, and ZAR by default), as well as a detailed overview of the contribution to the total cash balance from each individual currency. The contribution to the total cash balance from each individual currency is calculated in USD as the base currency using a stacked bar graph (or stacked line graph, although this is less neat with some quirks). The example shown employs debt or leverage to demonstrate the ...adaptability... of the framework to negative amounts.
Investment Funds
...
It should be noted that this concept can also be adapted to include the ...effect... from other assets, such as real estate, where the asset could simply be included as an investment with the value of the asset and a single share. A future enhancement to add is a view with the individual investments within each account.
Monthly Contributions
In order to calculate the realized performance, it is necessary to track the contributions to each account. So, the net contribution to each account for each month needs to be ...added... with the corresponding currency of the contribution. An overview is then provided to show the individual contributions to each account for each month (in USD, GBP, and ZAR by default), as well as the cumulative contributions to each account up to the current month (in USD, GBP, and ZAR by default). It should be noted that negative amounts should be used when ...money... is withdrawn from an account.
Realized Performance
...
Forecast Planning
...
Software Architecture Overview
...